#ifndef MEGACLIPBOARDMODEL_P_H
#define MEGACLIPBOARDMODEL_P_H

#include "MegaClipboardModel.h"
#include <QtCore/QList>

// forward declarations
class QClipboard;
class QMimeData;
class QModelIndex;

// private class
class MegaClipboardModelPrivate
{
	Q_DECLARE_PUBLIC(MegaClipboardModel)
public:
	MegaClipboardModelPrivate();
	virtual ~MegaClipboardModelPrivate();

public:
	void init();

	// QAbstractListModel implementation
	virtual int rowCount(const QModelIndex & _parent) const;
	virtual QVariant data(const QModelIndex & _index, int _role) const;
	virtual bool removeRows(int _row, int _count, const QModelIndex & _parent);

	bool activate(int _index);

	void _q_updateClipboard();

public:
	typedef QMimeData ClipData;
	typedef QList<ClipData*> ClipList;

	ClipList m_items;
	QClipboard * m_clipboard;

	MegaClipboardModel * q_ptr;

private:
	bool clipboardManualUpdate;
};

#endif // MEGACLIPBOARDMODEL_P_H
